Es gibt wahrscheinlich keinen Zaubertipp, mit dem auf einen Schlag alles richtig erscheint.
Problematik:
Jedes Tool (kann) macht es anders mit der Codierung.
Je mehr Varianten Du probierst, desto mehr Varianten werden Dir vermutlich angezeigt.
Prinzip: Ein Tool, eine Codierung, writeToDB, readFromDB, eine Codierung, Ausgabe (Darstellung) entspricht Eingabe.
Dieses Prinzip kann bereits gebrochen werden, wenn das eine Tool eine ungewöhnliche, falsche Codierung verwendet, die andere Tools nicht können/unterstützen.
Um aus der Nummer rauszukommen, startest Du mit einer leeren SQLite Datei und einem ordentlichen Tool. Datenbefüllung durchführen, Codierung prüfen, Abruf prüfen.
Wenn das richtig und konstitent ist und auch für wirkliche
Unicode Zeichen funktioniert, dann hängst Du Dein Programm dran.
Verdächtig in dem Programm sind jegliche Codeteile, die "manuelles" Stringhandling machen, aber singlebyte basiert sind.
Außerdem verdächtig sind Darstellungen, die keine
Unicode fähigen Anzeigekomponenten und Character Sets(!) verwenden.
Letzteres bedeutet nur, dass zwar alles richtig verarbeitet wird, die reine Darstellung in Deinem Programm aber nicht funktioniert.