The program flash in the Kinetis processor is memory mapped so the simplest method of reading from it is to just use pointers.
For example, to read 64 bytes from the addres 0x8000 do:
unsigned char mybuffer;
unsigned char *ptrFlash = (unsigned char *)0x8000;
memcpy(mybuffer, ptrFlash, sizeof(mybuffer));
Kinetis for professionals: http://www.utasker.com/kinetis.html