Not quite as bad as Denkinger, but pretty clearly out. Ought to be reversed.
If there’s any justice in this world, Galarraga will be awarded his perfect game. Joyce has already admitted he blew the call. Jason Donald knew clearly that he was out, and if he has any class (I have no reason whatsoever to think he doesn’t) he too will do his part in turning his hit into the groundout it was.
There’s really no reason MLB can’t fix this. It’s actually an incredibly clear-cut situation - the outcome of the game is totally irrelevant as the next batter was retired.