1. A method of operating a Single Level Cell (SLC) flash memory comprising: assigning binary logical states to flash memory cell threshold voltage ranges in a block according to a first assignment scheme; programming memory cells of the block according to the first assignment scheme; subsequently, in response to determining that data programmed in the memory cells of the block is obsolete, assigning binary logical states to flash memory cell threshold voltage ranges in the block according to a second assignment scheme that is different to the first assignment scheme; and further programming the memory cells of the block according to the second assignment scheme without erasing the memory cells of the block between the programming and the further programming.