describe

abstract suspend fun describe(select: String): List<SourceColumn>?

The columns select gives now, in order, as the warehouse describes it without running it; null when the warehouse cannot (a column it reads is gone, say).