pengecualian ini sebenarnya muncul karena Anda menutup dua kali database Anda, bukan karena Anda tidak menutupnya.
jadi..
di dalam kamu close()
metode, ganti baris berikut dalam kode Anda:
if (db != null) {
dengan:
if (db != null && db.isOpen()) {