Non è lento SQLite, sarà lenta la costruzione dei menu, probabilmente.
Se ad esempio all'interno del Loop tu eseguissi una semplice addizione e calcolassi il tempo dell'elaborazione, vedresti che sarebbe velocissima.
Quasi certamente creando la stringa JSON nel loop, anziché i menu, e creando questi soltanto alla fine, usando appunto la stringa, il tutto sarebbe più veloce
(tenendo fuori dal conteggio del tempo impiegato l'inizializzazione del DB, che andrebbe fatta "in altro luogo e momento").