Using @marks answer with Java Virtual Threads to make it really non-blocking:
private val vtDispatcher = Executors.newVirtualThreadPerTaskExecutor().asCoroutineDispatcher()
suspend fun getAllItems() = withContext(vtDispatcher) {
itemQueries.selectAll().mapToList()
}