Seu adaptador precisa funcionar. Dentro do seu método getView() você assume que os argumentos são um URI. Na verdade, os argumentos são:
public View getView(final int position, View convertView, final ViewGroup parent) {
...
}
O primeiro argumento é a posição do item no gridview que você está prestes a renderizar. A 2ª é a Vista - que pode ser reciclada. E o terceiro é o pai da exibição. Você está tentando pegar a posição, um inteiro simples, e usar isso como um URI
O que você deve fazer dentro do seu getView é retirar a imagem do seu banco de dados que corresponde ao item "posição"
Veja este link aqui para obter mais informações sobre como desenvolver carregadores para seus adaptadores