Use the third party utility
SRecord as a pre-build step in your MPLAB X project to convert your binary datafile to something MPLAB X can handle as part of your project.
You've got two choices, *EITHER*:
Tell SRecord to convert the data to an IntelHEX file (in the same IntelHEX format as the XC16 linker outputs, IIRC its bigendian INHX32 with each 24 bit word padded with a zero high byte), and add the resulting hex file to the project as a loadable. You'll aslo need a definition for an array at an absolute address at the load address of the hex file and to reserve that memory area in the linker options. If you need to (scriptably) tweak the hex file, use the HEXMATE utility, (bundled with MPAB X and with XC8, documentation in XC8 manual), which is a 'Swiss army knife' for IntelHEX files.
*OR*:
Tell SRecord to convert the data to a source file containing a C array you can add to your project. You'll probably need to add some other stuff to the array source, and the easiest way to do so is to have a 'stub' C file that #includes any headers you need, then #includes the generated file, then does any other macro 'magic' required e.g. define a const for the data length using sizeof on the array.
N.B. MPLAB gets very mixed up and will try to make it twice resulting in duplicate definitions if you add a .c file to your project and also #include it. Although its legal C to #include a .c file, you are strongly advised to name it
whatever_c.h to keep MPLAB happy.