Do you really need Ace-Addon? If you dont use any other function from this lib you can just leave it alone and directly register ADDON_LOADED like you do in OnInitialize. Every ACE-Lib is standalone. e.g. I use, Ace-Db, Ace-Config but never Ace-Addon.
For my addons I do it this way ... where childName is the addon name and addon is the namespace-table, defaults is the table where defaults are defined.
Lua Code:
if(event=='ADDON_LOADED') then
if(arg1 ~= childName) then return end
addon['db'] = addon['db'] or LibStub("AceDB-3.0"):New(childName.."DB", nil, default)
if(type(defaults) == 'table') then
addon['db']['profile'][childName] = addon['db']['profile'][childName] or CopyTable(defaults)
else
addon['db']['profile'][childName] = addon['db']['profile'][childName] or {}
end