diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt
index 336cac11ff218437b8dbc3e94287f33117a97b59..d1c225ff6ad834c587d9c52958888cc0241b7085 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/Database.kt
@@ -4,7 +4,7 @@ import org.briarproject.mailbox.core.api.Contact
 import org.briarproject.mailbox.core.settings.Settings
 import java.sql.Connection
 
-interface Database<T> {
+interface Database {
 
     /**
      * Opens the database and returns true if the database already existed.
@@ -22,20 +22,20 @@ interface Database<T> {
      * Starts a new transaction and returns an object representing it.
      */
     @Throws(DbException::class)
-    fun startTransaction(): T
+    fun startTransaction(): Connection
 
     /**
      * Aborts the given transaction - no changes made during the transaction
      * will be applied to the database.
      */
-    fun abortTransaction(txn: T)
+    fun abortTransaction(txn: Connection)
 
     /**
      * Commits the given transaction - all changes made during the transaction
      * will be applied to the database.
      */
     @Throws(DbException::class)
-    fun commitTransaction(txn: T)
+    fun commitTransaction(txn: Connection)
 
     @Throws(DbException::class)
     fun getSettings(txn: Connection, namespace: String?): Settings
@@ -44,12 +44,12 @@ interface Database<T> {
     fun mergeSettings(txn: Connection, s: Settings, namespace: String?)
 
     @Throws(DbException::class)
-    fun addContact(txn: T, contact: Contact)
+    fun addContact(txn: Connection, contact: Contact)
 
     @Throws(DbException::class)
-    fun getContact(txn: T, id: Int): Contact?
+    fun getContact(txn: Connection, id: Int): Contact?
 
     @Throws(DbException::class)
-    fun removeContact(txn: T, id: Int)
+    fun removeContact(txn: Connection, id: Int)
 
 }
diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt
index 50fd36f3336fd825c3ed69da48977cdc110c54ab..e32d0fc766b3d5afeac82f95b08fed3652ef22db 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/DatabaseModule.kt
@@ -5,7 +5,6 @@ import dagger.Provides
 import dagger.hilt.InstallIn
 import dagger.hilt.components.SingletonComponent
 import org.briarproject.mailbox.core.system.Clock
-import java.sql.Connection
 import javax.inject.Singleton
 
 @Module
@@ -14,7 +13,7 @@ internal class DatabaseModule {
 
     @Provides
     @Singleton
-    fun provideDatabase(config: DatabaseConfig, clock: Clock): Database<Connection> {
+    fun provideDatabase(config: DatabaseConfig, clock: Clock): Database {
         return H2Database(config, clock)
     }
 
diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt
index a0433b4879e8653fca233adc7182d118393f1f44..befc146cbb0cd6f33ef29926c9cb652444e08c1b 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/db/JdbcDatabase.kt
@@ -25,7 +25,7 @@ import java.util.concurrent.locks.ReentrantLock
 import javax.annotation.concurrent.GuardedBy
 
 abstract class JdbcDatabase(private val dbTypes: DatabaseTypes, private val clock: Clock) :
-    Database<Connection> {
+    Database {
 
     internal companion object {
 
diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt
index 4b1f8b91ba0971db3a28ac1e1ceda180abf0b65a..1ab9b3549ed4d6196c59bee7807a8f02c49d6f72 100644
--- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt
+++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/lifecycle/LifecycleManagerImpl.kt
@@ -23,7 +23,6 @@ import org.briarproject.mailbox.core.util.LogUtils.logException
 import org.briarproject.mailbox.core.util.LogUtils.now
 import org.briarproject.mailbox.core.util.LogUtils.trace
 import org.slf4j.LoggerFactory.getLogger
-import java.sql.Connection
 import java.util.concurrent.CopyOnWriteArrayList
 import java.util.concurrent.CountDownLatch
 import java.util.concurrent.ExecutorService
@@ -32,7 +31,7 @@ import javax.annotation.concurrent.ThreadSafe
 import javax.inject.Inject
 
 @ThreadSafe
-internal class LifecycleManagerImpl @Inject constructor(private val db: Database<Connection>) :
+internal class LifecycleManagerImpl @Inject constructor(private val db: Database) :
     LifecycleManager, MigrationListener {
 
     companion object {
diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
index f2e0018ab7b6a39312c5fc3b8d001a4f801d1bce..25e3aac1453214650d875911701b36d384168e63 100644
--- a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
+++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/JdbcDatabaseTest.kt
@@ -6,7 +6,6 @@ import org.briarproject.mailbox.core.system.Clock
 import org.junit.jupiter.api.Test
 import org.junit.jupiter.api.io.TempDir
 import java.io.File
-import java.sql.Connection
 import kotlin.test.assertEquals
 import kotlin.test.assertNull
 
@@ -23,8 +22,8 @@ abstract class JdbcDatabaseTest {
     @Throws(java.lang.Exception::class)
     fun open(
         resume: Boolean,
-    ): Database<Connection> {
-        val db: Database<Connection> = createDatabase(
+    ): Database {
+        val db: Database = createDatabase(
             TestDatabaseConfig(testDir)
         ) { System.currentTimeMillis() }
         if (!resume) deleteTestDirectory(testDir)
@@ -36,7 +35,7 @@ abstract class JdbcDatabaseTest {
     @Throws(Exception::class)
     open fun testPersistence() {
         // Store some records
-        var db: Database<Connection> = open(false)
+        var db: Database = open(false)
         var txn = db.startTransaction()
 
         val contact1 = Contact(