Fijate que el procedimiento ErrorBaseDatos espera como parámetro un objeto de la clase EDataBaseError, no de la clase Exception, por lo que no puedes hacer
Código Delphi
[-]else ErrorNoBaseDatos(Exception(E));
Sino que debes hacer la llamada asi:
Código Delphi
[-]else ErrorNoBaseDatos(E);