diff --git a/.changelog/unreleased/improvements/1717-storage-refactor.md b/.changelog/unreleased/improvements/1717-storage-refactor.md
new file mode 100644
index 0000000000..ae44ad180a
--- /dev/null
+++ b/.changelog/unreleased/improvements/1717-storage-refactor.md
@@ -0,0 +1,2 @@
+- Refactored storage code to only use an immutable reference when reading and
+ writing to a batch. ([\#1717](https://github.com/anoma/namada/pull/1717))
\ No newline at end of file
diff --git a/apps/src/lib/node/ledger/storage/rocksdb.rs b/apps/src/lib/node/ledger/storage/rocksdb.rs
index 9b6077f50a..f679ca9232 100644
--- a/apps/src/lib/node/ledger/storage/rocksdb.rs
+++ b/apps/src/lib/node/ledger/storage/rocksdb.rs
@@ -176,14 +176,6 @@ impl RocksDB {
.ok_or(Error::DBError("No {cf_name} column family".to_string()))
}
- fn flush(&self, wait: bool) -> Result<()> {
- let mut flush_opts = FlushOptions::default();
- flush_opts.set_wait(wait);
- self.0
- .flush_opt(&flush_opts)
- .map_err(|e| Error::DBError(e.into_string()))
- }
-
/// Persist the diff of an account subspace key-val under the height where
/// it was changed.
fn write_subspace_diff(
@@ -512,7 +504,7 @@ impl DB for RocksDB {
.map_err(|e| Error::DBError(e.into_string()))
}
- fn read_last_block(&mut self) -> Result