store and retrieve array of chars in flash memory

Just print the pieces:

// strings I want to save in flash
const char STR_0[] PROGMEM = "string0_";
const char STR_1[] PROGMEM = "string1_";
const char STR_2[] PROGMEM = "string2_";
const char STR_3[] PROGMEM = "string3_";
const char STR_4[] PROGMEM = "string4_";
const char STR_5[] PROGMEM = "string5_";

const char* const STR[] PROGMEM =
  {
    STR_0,
    STR_1,
    STR_2,
    STR_3,
    STR_4,
    STR_5
  };

const size_t MAX_STRINGS = sizeof(STR) / sizeof(STR[0]);

// Handy macro for casting the "const char *" to the correct type for printing
#define CF(s) ((const __FlashStringHelper *)s)

void function()
{
  uint8_t i=0;

  while (i<MAX_STRINGS) {
    Serial.print( CF( STR[i] ) );
    i++;

    if (i<MAX_STRINGS)
      Serial.print( CF( STR[i] ) );
    i++;

    Serial.println();
  }

  Serial.println();
}



void setup() {
  Serial.begin(9600);
  function();
}


void loop() {
}

There's no reason to make a big RAM copy of the FLASH strings.