Carnival would only have to give the same category or higher. 4J is technically an inside cabin, so any outside cabin is an upgrade.
There are a number of reasons including if the capacity of the cabin is greater than the number of occupants booked. But heck, Carnival can even substitute a different ship if they want to.
No, these don't happen everyday, but it is possible.