According to Jim Bowden of ESPN.com, Zack Greinke has the ability to opt out of his Dodgers' contract after three years and can opt at the end of the season in a year he's traded.
The Dodgers didn't want to give him a no-trade clause, so this is the compromise they came up with. It's not the first time they've given an opt-out clause, as J.D. Drew opted out of the final three years of a five-year deal with the Dodgers. Greinke's six-year, $147 million contract will become official after he passes a physical.