I'd probably have more 'respect' for him if he stuck to his principles. I very much doubt he's 'seen the light' and changed his mind as to why he didn't do it.
I imagine it's the threat of not playing for his country again and probably more so losing sponsorship deals and maybe not been selected for the IPL/Big bash and the 100 (if you consider how much sky put into the racism message).
He clearly has his reasons. I read an interesting artical about how he's done plenty of work in and around the South African projects (slums) and donated thousands.
I doubt it's as simplistic as that he's not taking the knee so he's racist. Absolutely no context and growing up in South Africa is clearly a whole different ball game (excuse the pun) as over here.
I'm not sure how it 'improves' things when he starts taking the knee. You just know he's doing it despite not wanting too.
Although as a purely sporting note its a bonus. One of the best T20 players in the world.