Вы должны иметь возможность открыть базу данных в методе onCreate и закрыть ее в методе onDestroy. Это будет гарантировать, что оно будет доступно до тех пор, пока действие «живое», и что в конечном итоге оно будет очищено.
Далее, вам, вероятно, следует использовать «startManagingCursor» на курсоре, который вы используете с вашим адаптером. Это обеспечит его деактивацию, запрос и закрытие по мере необходимости при паузе, возобновлении и уничтожении соответственно. Курсоры, которые не используются в адаптерах, должны быть закрыты, как только вы закончите получать от них данные.
Не должно быть утечек, если вы будете следовать этим правилам.