Well, getNotificationData doesn't know whether the caller just wants an existing instance or any instance, creating a new one if not already present.

My current solution is getNotificationData(Account, Integer) where one passes null as second parameter if a new instance shouldn't be created.