There are basically two ways to look at
bluff catching on the river. There is the game theory approach, where you determine your MDF and call exactly so much, that your opponent neither win nor lose money, if he is
bluffing. Without knowing your exact range my guess is, that KK is probably a call, if you want to be balanced. And if KK is only a partial call, then it is better to call with those KK, that does not have a heart. This is because, you would like him to have a hand like KhTh or Kh9h, so not blocking those
hands is good.
The exploitative approach rely on assumed player pool tendencies, and the analysis on the river is something like this: The guy called a pretty large raise from SB, which mean, he is probably a fish. He called you on the flop, which mean, he probably connected. He made a sizable river bet, which mean, he probably has you beat. Conclusion: Fold.