A method of providing a logical view of updatable data stored in a non-volatile memory, to an update process, the non-volatile memory being partitioned into a plurality of non-volatile memory blocks of equal size, the method comprising: based on a block-based access layer enabling reading and writing access to the non-volatile memory from the update process, identifying an updatable data partition of the updatable data, the updatable data being partitioned into a plurality of data partitions, each data partition comprising a plurality of compressed data blocks; 1) reading an updatable compressed data block of the updatable data partition from the non-volatile memory and decompressing, to a temporary memory accessible to the update process, the updatable compressed data block into an updatable decompressed data block; 2) reading a corresponding updated decompressed data block from the temporary memory and compressing, in the temporary memory, the corresponding updated decompressed data block into an updated compressed data block; and, 3) writing the updated compressed data block to the non-volatile memory; the steps 1), 2) and 3) being repeated for each updatable compressed data block of the updatable data partition; wherein, the updatable data partition further comprises recovery information of the updatable compressed data block; and, wherein the size of each updatable decompressed data block and corresponding updated decompressed data block is a multiple of the size of a non-volatile memory block. based on a block-based access layer enabling reading and writing access to the non-volatile memory from the update process, identifying an updatable data partition of the updatable data, the updatable data being partitioned into a plurality of data partitions, each data partition comprising a plurality of compressed data blocks; 1) reading an updatable compressed data block of the updatable data partition from the non-volatile memory and decompressing, to a temporary memory accessible to the update process, the updatable compressed data block into an updatable decompressed data block; 2) reading a corresponding updated decompressed data block from the temporary memory and compressing, in the temporary memory, the corresponding updated decompressed data block into an updated compressed data block; and, 3) writing the updated compressed data block to the non-volatile memory; the steps 1), 2) and 3) being repeated for each updatable compressed data block of the updatable data partition; identifying an updatable data partition of the updatable data, the updatable data being partitioned into a plurality of data partitions, each data partition comprising a plurality of compressed data blocks; 1) reading an updatable compressed data block of the updatable data partition from the non-volatile memory and decompressing, to a temporary memory accessible to the update process, the updatable compressed data block into an updatable decompressed data block; 2) reading a corresponding updated decompressed data block from the temporary memory and compressing, in the temporary memory, the corresponding updated decompressed data block into an updated compressed data block; and, 3) writing the updated compressed data block to the non-volatile memory; the steps 1), 2) and 3) being repeated for each updatable compressed data block of the updatable data partition; 1) reading an updatable compressed data block of the updatable data partition from the non-volatile memory and decompressing, to a temporary memory accessible to the update process, the updatable compressed data block into an updatable decompressed data block; 2) reading a corresponding updated decompressed data block from the temporary memory and compressing, in the temporary memory, the corresponding updated decompressed data block into an updated compressed data block; and, 3) writing the updated compressed data block to the non-volatile memory; the steps 1), 2) and 3) being repeated for each updatable compressed data block of the updatable data partition;