diff --git a/mailbox-core/build.gradle b/mailbox-core/build.gradle
index fc34695fd31e37055694ca56685ac3531d10e0f6..5549ac793f597f78c3f15ad140d83344db49b49c 100644
--- a/mailbox-core/build.gradle
+++ b/mailbox-core/build.gradle
@@ -13,6 +13,7 @@ dependencies {
     api "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
     api 'com.google.code.findbugs:jsr305:3.0.2'
     api 'javax.inject:javax.inject:1' // required for @Qualifier in @Wakeful
+    api 'io.github.willena:sqlite-jdbc:3.35.5.3'
 
     implementation "com.google.dagger:hilt-core:$hilt_version"
     kapt "com.google.dagger:dagger-compiler:$hilt_version"
diff --git a/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt
new file mode 100644
index 0000000000000000000000000000000000000000..da9e17d0777a63fbd883099fe0656eca0a28c1f8
--- /dev/null
+++ b/mailbox-core/src/test/java/org/briarproject/mailbox/core/db/DatabaseCreationTest.kt
@@ -0,0 +1,48 @@
+package org.briarproject.mailbox.core.db
+
+import kotlinx.coroutines.runBlocking
+import org.junit.jupiter.api.Test
+import java.nio.file.Files
+import java.nio.file.Path
+import java.sql.Connection
+import java.sql.DriverManager
+import kotlin.test.assertEquals
+import kotlin.test.assertTrue
+
+class DatabaseCreationTest {
+
+    @Test
+    fun createDatabase(): Unit = runBlocking {
+        val file: Path = Files.createTempFile("test", ".sqlite")
+        println(file)
+        val connection: Connection = DriverManager.getConnection("jdbc:sqlite:$file")
+
+        val stmt = connection.createStatement()
+        stmt.executeUpdate("CREATE TABLE students (id integer, name string)")
+        stmt.executeUpdate("INSERT INTO students values (1, 'alice')")
+        stmt.executeUpdate("INSERT INTO students values (2, 'bob')")
+
+        val prep = connection.prepareStatement("SELECT * FROM students")
+        val results = prep.executeQuery()
+        for (i in 0..1) {
+            val available = results.next()
+            assertTrue(available)
+
+            val id = results.getInt(1)
+            val name = results.getString(2)
+            when (i) {
+                0 -> {
+                    assertEquals(1, id)
+                    assertEquals("alice", name)
+                }
+                1 -> {
+                    assertEquals(2, id)
+                    assertEquals("bob", name)
+                }
+            }
+        }
+
+        Files.delete(file)
+    }
+
+}