ten wyjątek jest faktycznie zgłoszony, ponieważ dwukrotnie zamykasz bazę danych, a nie dlatego, że jej nie zamknąłeś.
więc...
w tobie close()
metody, zastąp następujący wiersz w kodzie:
if (db != null) {
z:
if (db != null && db.isOpen()) {