1. A method of managing data in a non-volatile memory array having multiple blocks of non-volatile memory cells, a block being the minimum unit of erase, a block containing multiple sectors of data, comprising: receiving a read command from a host specifying data to be read from a first block; reading the data from the first block; determining if one or more portions of the data are to be corrected and replaced in the non-volatile memory; and when a portion of the data is to be corrected and replaced, storing a corrected version of the portion of the data in a second block but not replacing other portions of the data and not storing the other portions of the data in the second block.