A method for reading data in a storage device, the method comprising: receiving, by the storage device, a read command from a host device, wherein the read command comprises a Logical Block Address, LBA, of stored data to be read; obtaining, by the storage device, a Physical Block Number, PBN, based on the LBA and a Logical to Physical, L2P, mapping; determining, by the storage device, whether the PBN corresponds to a volatile memory of the storage device; reading, by the storage device, the stored data directly from the volatile memory based on the PBN corresponding to the volatile memory; incrementing, by the storage device, a read counter associated with the PBN based on the stored data being read directly from the volatile memory; reading, by the storage device, the stored data from a non-volatile memory of the storage device based on the PBN not corresponding to the volatile memory; determining, by the storage device, whether a read disturbance exceeds a threshold limit while the stored data is read from the non-volatile memory; reading, by the storage device, the stored data from the non-volatile memory based on the read disturbance not exceeding the threshold limit while the stored data is read from the non-volatile memory; and allocating, by the storage device, a buffer in the volatile memory based on the read disturbance exceeding the threshold limit while the stored data is read from the non-volatile memory, wherein the allocating the buffer in the volatile memory further comprises: determining, by the storage device, whether the buffer in the volatile memory has been successfully allocated; relocating, by the storage device, the stored data from the non-volatile memory to the volatile memory based on the allocating of the buffer in the volatile memory being successful; updating the L2P mapping based on the stored data being relocated to the volatile memory; reading the stored data from the volatile memory; and relocating data from the volatile memory to the non-volatile memory based on the allocating of the buffer in the volatile memory not being successful, wherein the relocated data comprises a lowest read counter among a plurality of read counters of the volatile memory. receiving, by the storage device, a read command from a host device, wherein the read command comprises a Logical Block Address, LBA, of stored data to be read; obtaining, by the storage device, a Physical Block Number, PBN, based on the LBA and a Logical to Physical, L2P, mapping; determining, by the storage device, whether the PBN corresponds to a volatile memory of the storage device; reading, by the storage device, the stored data directly from the volatile memory based on the PBN corresponding to the volatile memory; incrementing, by the storage device, a read counter associated with the PBN based on the stored data being read directly from the volatile memory; reading, by the storage device, the stored data from a non-volatile memory of the storage device based on the PBN not corresponding to the volatile memory; determining, by the storage device, whether a read disturbance exceeds a threshold limit while the stored data is read from the non-volatile memory; reading, by the storage device, the stored data from the non-volatile memory based on the read disturbance not exceeding the threshold limit while the stored data is read from the non-volatile memory; and allocating, by the storage device, a buffer in the volatile memory based on the read disturbance exceeding the threshold limit while the stored data is read from the non-volatile memory, wherein the allocating the buffer in the volatile memory further comprises: determining, by the storage device, whether the buffer in the volatile memory has been successfully allocated; relocating, by the storage device, the stored data from the non-volatile memory to the volatile memory based on the allocating of the buffer in the volatile memory being successful; updating the L2P mapping based on the stored data being relocated to the volatile memory; reading the stored data from the volatile memory; and relocating data from the volatile memory to the non-volatile memory based on the allocating of the buffer in the volatile memory not being successful, wherein the relocated data comprises a lowest read counter among a plurality of read counters of the volatile memory. determining, by the storage device, whether the buffer in the volatile memory has been successfully allocated; relocating, by the storage device, the stored data from the non-volatile memory to the volatile memory based on the allocating of the buffer in the volatile memory being successful; updating the L2P mapping based on the stored data being relocated to the volatile memory; reading the stored data from the volatile memory; and relocating data from the volatile memory to the non-volatile memory based on the allocating of the buffer in the volatile memory not being successful, wherein the relocated data comprises a lowest read counter among a plurality of read counters of the volatile memory.