diff --git a/src/database/abstraction.rs b/src/database/abstraction.rs
index 45e62b6b..aa495038 100644
--- a/src/database/abstraction.rs
+++ b/src/database/abstraction.rs
@@ -34,6 +34,8 @@ pub(crate) trait KeyValueDatabaseEngine: Send + Sync {
 	fn backup(&self) -> Result<(), Box<dyn Error>> { unimplemented!() }
 
 	fn backup_list(&self) -> Result<String> { Ok(String::new()) }
+
+	fn file_list(&self) -> Result<String> { Ok(String::new()) }
 }
 
 pub(crate) trait KvTree: Send + Sync {
diff --git a/src/database/abstraction/rocksdb.rs b/src/database/abstraction/rocksdb.rs
index 597552df..0c9b0e54 100644
--- a/src/database/abstraction/rocksdb.rs
+++ b/src/database/abstraction/rocksdb.rs
@@ -304,6 +304,30 @@ impl KeyValueDatabaseEngine for Arc<Engine> {
 		Ok(res)
 	}
 
+	fn file_list(&self) -> Result<String> {
+		match self.rocks.live_files() {
+			Err(e) => Ok(String::from(e)),
+			Ok(files) => {
+				let mut res = String::new();
+				for file in files {
+					let _ = std::fmt::write(
+						&mut res,
+						format_args!(
+							"<code>L{} {:<13} {:7}+ {:4}- {:9}</code> {}<br>",
+							file.level,
+							file.name,
+							file.num_entries,
+							file.num_deletions,
+							file.size,
+							file.column_family_name,
+						),
+					);
+				}
+				Ok(res)
+			},
+		}
+	}
+
 	// TODO: figure out if this is needed for rocksdb
 	#[allow(dead_code)]
 	fn clear_caches(&self) {}
diff --git a/src/database/key_value/globals.rs b/src/database/key_value/globals.rs
index 14aa8d66..dc4988b6 100644
--- a/src/database/key_value/globals.rs
+++ b/src/database/key_value/globals.rs
@@ -286,4 +286,6 @@ lasttimelinecount_cache: {lasttimelinecount_cache}\n"
 	fn backup(&self) -> Result<(), Box<dyn std::error::Error>> { self.db.backup() }
 
 	fn backup_list(&self) -> Result<String> { self.db.backup_list() }
+
+	fn file_list(&self) -> Result<String> { self.db.file_list() }
 }
diff --git a/src/service/globals/data.rs b/src/service/globals/data.rs
index 1615b5a0..51cfc6c8 100644
--- a/src/service/globals/data.rs
+++ b/src/service/globals/data.rs
@@ -37,4 +37,5 @@ pub trait Data: Send + Sync {
 	fn bump_database_version(&self, new_version: u64) -> Result<()>;
 	fn backup(&self) -> Result<(), Box<dyn Error>> { unimplemented!() }
 	fn backup_list(&self) -> Result<String> { Ok(String::new()) }
+	fn file_list(&self) -> Result<String> { Ok(String::new()) }
 }